package org.dxy.domain.event.productionLine;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 产线事件类型枚举
 * @author dxy
 * @createTime 2025/8/2
 */
@Getter
@AllArgsConstructor
public enum ProductionLineEventTypeEnum {
    /** 产线创建 */
    CREATED("created", "产线创建"),
    
    /** 产线启动 */
    STARTED("started", "产线启动"),
    
    /** 产线停止 */
    STOPPED("stopped", "产线停止"),
    
    /** 产线暂停 */
    PAUSED("paused", "产线暂停"),
    
    /** 产线恢复 */
    RESUMED("resumed", "产线恢复"),
    
    /** 产线移除 */
    REMOVED("removed", "产线移除"),
    
    /** 产线重新配置 */
    RECONFIGURED("reconfigured", "产线重新配置"),
    
    /** 产线产能更新 */
    CAPACITY_UPDATED("capacityUpdated", "产线产能更新"),
    
    /** 产线报警触发 */
    ALARM_TRIGGERED("alarmTriggered", "产线报警触发"),
    
    /** 产线故障上报 */
    FAULT_REPORTED("faultReported", "产线故障上报"),
    
    /** 产线故障恢复 */
    RECOVERED("recovered", "产线故障恢复"),
    
    /** 工单分配到产线 */
    WORK_ORDER_ASSIGNED("workOrderAssigned", "工单分配到产线"),
    
    /** 工单从产线移除 */
    WORK_ORDER_REMOVED("workOrderRemoved", "工单从产线移除"),
    
    /** 工位加入产线 */
    WORKSTATION_ADDED("workstationAdded", "工位加入产线"),
    
    /** 工位从产线移除 */
    WORKSTATION_REMOVED("workstationRemoved", "工位从产线移除");

    private final String key;         // 用于标识事件类型的代码（小写）
    private final String description; // 事件类型的描述
}